from rest_framework import serializers

"""
max_length: 最大长度
min_lenght: 最小长度
allow_blank: 是否允许为空
trim_whitespace: 是否截断空白字符
max_value: 最大值
min_value: 最小值

read_only: 表明该字段仅用于序列化输出，默认False
write_only: 表明该字段仅用于反序列化输入，默认False
required: 表明该字段在反序列化时必须输入，默认True
default: 反序列化时使用的默认值
allow_null: 表明该字段是否允许传入None，默认False
validators: 该字段使用的验证器
error_messages: 包含错误编号与错误信息的字典
label: 用于HTML展示API页面时，显示的字段名称
help_text: 用于HTML展示API页面时，显示的字段帮助提示信息
"""


class TestApiDeserialization(serializers.Serializer):
    id = serializers.IntegerField(label='id', required=True)
    name = serializers.CharField(label='name', max_length=20, required=True)


class TestApiSerializer(serializers.Serializer):
    id = serializers.IntegerField(label='id', read_only=True, allow_null=False)
    name = serializers.CharField(label='name', max_length=100, allow_null=False)
    author = serializers.CharField(label='name', max_length=20, allow_null=False)
    create_date = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")


class TranslateSerializer(serializers.Serializer):
    text = serializers.CharField(label='name', max_length=1000, allow_null=True, allow_blank=True)
    from_lang = serializers.CharField(label='from_lang', max_length=10)
    to_lang = serializers.CharField(label='to_lang', max_length=10)